#pragma once
// 一些跟网络通讯有关的公共结构体和宏定义

// 每个包最大长度（包头+包体）
#define _PKG_MAX_LENGTH 30000

// 收包状态
#define _PKG_HD_INIT     0// 初始状态，准备接收数据包头
#define _PKG_HD_RECVING  1// 接收包头中，包头不完整，继续接收中
#define _PKG_BD_INIT     2// 包头刚好收完，准备接收包体
#define _PKG_BD_RECVING  3// 接收包体中，包体不完整，继续接收中，处理后直接回到_PKG_HD_INIT状态

// 固定大小的数组来收包头，需保证>sizeof(COMM_PKG_HEADER)
#define _DATA_BUFSIZE_ 20

#pragma pack (1)// 先设置1字节对齐，保证包头结构体紧密排列
// 包头结构体
typedef struct _COMM_PKG_HEADER{
    unsigned short pkgLen;// 报文总长度（2字节）包头+包体
    unsigned short msgCode;// 消息类型（2字节），也就是需要调用的函数
    int crc32;// CRC32校验码（4字节）
}COMM_PKG_HEADER,*LPCOMM_PKG_HEADER;
#pragma pack() // 再恢复默认对齐，避免影响其他结构体